using Sinacor.Servico.Bovespa.ManutencaoOrdens.BusinessEntity.Enum;
using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Common;

namespace Sinacor.Servico.Bovespa.ManutencaoOrdens.BusinessEntity.Parameter
{
    /// <summary>
    /// Entidade que representa o Parametro de Filtro da Ordem
    /// </summary>
    public class FiltroOrdem
    {
        private string _apelidoCliente;
        private bool _apenasDiscricionariasNaoDistribuidas;
		private bool _apenasPendentesJustificativa;
		private bool _apenasRecebidasViaCanal;
		private bool _apenasSemCliente;
		private bool _apenasValidas;
		private string _ativo;
		private int? _broker;
		private bool _casadas;
		private bool _casadasParcialmente;
		private int? _cliente;
		private DateTime? _dataPregao;
		private bool _naoCasadas;
		private bool _naoCasadasPreBoleto;
		private Enum.NaturezaOperacao? _naturezaOperacao;
		private int? _numero;
		private int? _operador;
		private List<Enum.SituacaoOrdem> _situacao;
        private bool? _permiteCasamento;
        private bool? _distribuida;

		public FiltroOrdem(){}

        public string ApelidoCliente
        {
            get
            {
                return _apelidoCliente;
            }
            set
            {
                _apelidoCliente = value;
            }
        }

        public bool ApenasDiscricionariasNaoDistribuidas
        {
            get { return _apenasDiscricionariasNaoDistribuidas; }
            set { _apenasDiscricionariasNaoDistribuidas = value; }
        }

		public bool ApenasPendentesJustificativa{
			get{
				return _apenasPendentesJustificativa;
			}
			set{
                _apenasPendentesJustificativa = value;
			}
		}

		public bool ApenasRecebidasViaCanal{
			get{
				return _apenasRecebidasViaCanal;
			}
			set{
				_apenasRecebidasViaCanal = value;
			}
		}

		public bool ApenasSemCliente{
			get{
				return _apenasSemCliente;
			}
			set{
				_apenasSemCliente = value;
			}
		}

		public bool ApenasValidas{
			get{
				return _apenasValidas;
			}
			set{
				_apenasValidas = value;
			}
		}

		public string Ativo{
			get{
				return _ativo;
			}
			set{
				_ativo = value;
			}
		}

		public int? Broker{
			get{
				return _broker;
			}
			set{
                _broker = value;
			}
		}

		public bool Casadas{
			get{
				return _casadas;
			}
			set{
				_casadas = value;
			}
		}

		public bool CasadasParcialmente{
			get{
				return _casadasParcialmente;
			}
			set{
				_casadasParcialmente = value;
			}
		}

		public int? Cliente{
			get{
				return _cliente;
			}
			set{
				_cliente = value;
			}
		}

		public DateTime? DataPregao{
			get{
				return _dataPregao;
			}
			set{
				_dataPregao = value;
			}
		}

		public bool NaoCasadas{
			get{
				return _naoCasadas;
			}
			set{
				_naoCasadas = value;
			}
		}

		public bool NaoCasadasPreBoleto{
			get{
				return _naoCasadasPreBoleto;
			}
			set{
				_naoCasadasPreBoleto = value;
			}
		}

		public Enum.NaturezaOperacao? NaturezaOperacao{
			get{
				return _naturezaOperacao;
			}
			set{
				_naturezaOperacao = value;
			}
		}

		public int? Numero{
			get{
				return _numero;
			}
			set{
				_numero = value;
			}
		}

		public int? Operador{
			get{
				return _operador;
			}
			set{
				_operador = value;
			}
		}

        public List<Enum.SituacaoOrdem> Situacao
        {
			get{
				return _situacao;
			}
			set{
				_situacao = value;
			}
		}

        public bool? PermiteCasamento
        {
            get { return _permiteCasamento; }
            set { _permiteCasamento = value; }
        }

        public bool? Distribuida
        {
            get { return _distribuida; }
            set { _distribuida = value; }
        }

	}

}